package io.kimmking.gateway.swagger;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;

import java.util.HashSet;
import java.util.Set;

@Setter
@Getter
@ConfigurationProperties("kk.swagger-agg")
@RefreshScope
public class SwaggerAggProperties {
    /**
     * Swagger2.0生成分组文档的默认访问路径（全局配置）
     */
    private String apiDocsPath = "/v2/api-docs";

    /**
     * Swagger文档版本（全局配置）
     */
    private String swaggerVersion = "2.0";

    /**
     * 聚合生成文档的路由名称(route-id,其实是以微服务为粒度的)，未设置的路由表示不会被聚合显示
     */
    private Set<String> generateRoutes = new HashSet<>();

    /**
     * 是否聚合显示该路由，这里的聚合显示表示只需要在网关的doc.html页面里通过切换显示各个微服务的swagger页面
     */
    public boolean isShow(String route) {
        int generateRoutesSize = generateRoutes.size();

        if(generateRoutesSize==0)
            return false;

        if(generateRoutesSize > 0 && !generateRoutes.contains(route)) {
            return false;
        }

        return true;
    }
}
